import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import axios from 'axios'
Vue.use(ElementUI);

Vue.config.productionTip = false
// 配置全局根路径
axios.defaults.baseURL = 'http://localhost:9999'
//配置axios的请求拦截,设置请求头,设置token
axios.interceptors.request.use(function (config) {
  const loginPaths = ['/']; // 可添加多个登录相关路径
  const isLoginPage = loginPaths.includes(router.currentRoute.path);
  if (store.state.token && !isLoginPage){
    // 在发送请求之前做些什么
    config.headers['Authorization'] = store.state.token
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 配置axios的后置 对响应拦截
axios.interceptors.response.use(function (response) {
  // 这个response就是axios封装的响应对象,内部有6个数据
  // 但是我们只关注数据,即data
  // 放行到前面axios的then中
  return response.data;
}, function (error) {
  // 对响应错误做点什么
  if (error.response && error.response.data && error.response.data.msg === '令牌已过期，请重新登录') {
    // 清除本地过期令牌
    localStorage.removeItem('token');
    // 跳转到登录页
    window.location.href = '/';
  }
  return Promise.reject(error);
});

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: function (h) { return h(App) }
}).$mount('#app')
